import dayjs from 'dayjs'
import Schema from 'validate'
const visitinfo = new Schema({
  houseId: {
    type: String,
    required: true,
    message: '请选择房屋'
  },
  name: {
    type: String,
    length: { min: 2, max: 6 },
    message: '请填写姓名2~6位'
  },
  mobile: {
    type: String,
    match: /^1[3-9]\d{9}$/,
    message: '手机不合法',
  },
  visitDate: {
    type: String,
    required: true,
    message: '请选择访问日期'
  }
},
  { strip: false } // 解决 验证对象后，数据丢失属性的问题！！
)
Page({
  data: {
    currentTime: Date.now(),//当前时间戳
    aftertTime: +dayjs().add(3, 'day'),//最多三天
    dateLayerVisible: false,
    houseLayerVisible: false,
    houseList: [],
    houseId: '',// 房屋id
    houseName: '',// 房屋名称
    name: '',//姓名
    gender: 1,//性别
    mobile: '',//手机号
    visitDate: '',//访问日期:3天以内的日期

  },
  onLoad() {
    this.getHouseList()
  },
  // 获取我可保修房屋列表和维修项目列表
  async getHouseList() {
    // 获取我可保修房屋列表
    const res = await wx.http({
      url: '/house'
    })
    // 保存房屋列表
    this.setData({ houseList: res.data })
  },
  // 选择了房屋
  onHouseSelect(ev) {
    this.setData({
      houseId: ev.detail.id,// 房屋id
      houseName: ev.detail.name,// 房屋名称
    })
  },
  // 确认时间
  onConfirmTime({ detail }) {
    this.setData({
      visitDate: dayjs(detail).format('YYYY-MM-DD'),
      dateLayerVisible: false
    })
  },

  // 选择报修房屋组件显示
  openHouseLayer() {
    this.setData({ houseLayerVisible: true })
  },
  // 选择报修房屋组件隐藏
  closeHouseLayer() {
    this.setData({ houseLayerVisible: false })
  },
  // 选择拜访日期显示
  openDateLayer() {
    this.setData({ dateLayerVisible: true })
  },
  // 选择拜访日期组件隐藏
  closeDateLayer() {
    this.setData({ dateLayerVisible: false })
  },
  async goPassport() {
    // 读取数据
    const { houseId, name, gender, mobile, visitDate } = this.data
    const params = { houseId, name, gender, mobile, visitDate }
    // 表单校验
    const errs = visitinfo.validate(params)
    if (errs.length !== 0) {
      return wx.utils.toast(errs[0].message)
    }
    // 发送请求
    const res = await wx.http({
      url: '/visitor',
      method: 'post',
      data: params
    })
    if (res.code !== 10000) {
      return wx.utils.toast(res.message)
    }
    // 弹窗提示
    wx.showToast({ title: '提交成功' })
    // 跳转访客列表页面
    setTimeout(() => {
      wx.reLaunch({
        url: '/visitor_pkg/pages/passport/index?id=' + res.data.id,
      })
    }, 1000);
  },
})
